2024.3.27 特異値分解【numpy】
特異値の定義
$ Aを$ m \times nの行列
$ \lambda(X)を行列$ Xの固有値
このとき、$ Aの特異値$ \sigma (A)は次式で与えられる。
$ \sigma (A) = \sqrt{\lambda(AA^*)}
計算
code:svd01.py
import numpy as np
A = np.array(1., 2], [3, 4)
A = np.array(1., 2, 3], [4, 5, 6)
A = np.array(6., -2],[6, -1)
U, S, V = np.linalg.svd(A)
print('A =')
print(A)
print('U =')
print(U)
print('S =')
print(S)
print('V =')
print(V)
D = np.zeros_like(A)
for i, sigma in enumerate(S):
print(D)
print('U @ diag(S) @ V =')
print(U @ D @ V)